home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / named.vim < prev    next >
Encoding:
Text File  |  2001-09-26  |  9.7 KB  |  235 lines

  1. " Vim syntax file
  2. " Language:    BIND 8.x configuration file
  3. " Maintainer:    glory hump <rnd@web-drive.ru>
  4. " Last change:    Mon May 21 04:51:01 SAMST 2001
  5. " Filenames:    named.conf
  6. " URL:    http://rnd.web-drive.ru/vim/syntax/named.vim
  7. " $Id: named.vim,v 1.4 2001/05/21 00:03:53 rnd Exp $
  8. "
  9. " NOTE
  10. "    it was not widely tested, i just tried it on my simple
  11. "    single-master-single-slave configuration. most syntax was borrowed
  12. "    directly from "BIND Configuration File Guide" without testing.
  13.  
  14. " For version 5.x: Clear all syntax items
  15. " For version 6.x: Quit when a syntax file was already loaded
  16. if version < 600
  17.   syntax clear
  18. elseif exists("b:current_syntax")
  19.   finish
  20. endif
  21.  
  22. syn case match
  23.  
  24. if version >= 600
  25.   setlocal iskeyword=.,-,48-58,A-Z,a-z,_
  26. else
  27.   set iskeyword=.,-,48-58,A-Z,a-z,_
  28. endif
  29.  
  30. let s:save_cpo = &cpo
  31. set cpo-=C
  32.  
  33. " BIND configuration file
  34.  
  35. syn match    namedComment    "//.*"
  36. syn region    namedComment    start="/\*" end="\*/"
  37. syn region    namedString    start=/"/ end=/"/ contained
  38. " --- omitted trailing semicolon FIXME
  39. syn match    namedError    /[^;{]$/
  40.  
  41. " --- top-level keywords
  42.  
  43. syn keyword    namedInclude    include nextgroup=namedString skipwhite
  44. syn keyword    namedKeyword    acl key nextgroup=namedIntIdent skipwhite
  45. syn keyword    namedKeyword    server nextgroup=namedIdentifier skipwhite
  46. syn keyword    namedKeyword    controls nextgroup=namedSection skipwhite
  47. syn keyword    namedKeyword    trusted-keys nextgroup=namedIntSection skipwhite
  48. syn keyword    namedKeyword    logging nextgroup=namedLogSection skipwhite
  49. syn keyword    namedKeyword    options nextgroup=namedOptSection skipwhite
  50. syn keyword    namedKeyword    zone nextgroup=namedZoneString skipwhite
  51.  
  52. " --- Identifier: name of following { ... } Section
  53. syn match    namedIdentifier    contained /\k\+/ nextgroup=namedSection skipwhite
  54. " --- IntIdent: name of following IntSection
  55. syn match    namedIntIdent    contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite
  56.  
  57. " --- Section: { ... } clause
  58. syn region    namedSection    contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword
  59.  
  60. " --- IntSection: section that does not contain other sections
  61. syn region    namedIntSection    contained start=+{+ end=+}+ contains=namedIntKeyword,namedError
  62.  
  63. " --- IntKeyword: keywords contained within `{ ... }' sections only
  64. " + these keywords are contained within `key' and `acl' sections
  65. syn keyword    namedIntKeyword    contained key algorithm
  66. syn keyword    namedIntKeyword    contained secret nextgroup=namedString skipwhite
  67.  
  68. " + these keywords are contained within `server' section only
  69. syn keyword    namedIntKeyword    contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite
  70. syn keyword    namedIntKeyword    contained transfers nextgroup=namedNumber,namedNotNumber skipwhite
  71. syn keyword    namedIntKeyword    contained transfer-format
  72. syn keyword    namedIntKeyword    contained keys nextgroup=namedIntSection skipwhite
  73.  
  74. " + these keywords are contained within `controls' section only
  75. syn keyword    namedIntKeyword    contained inet nextgroup=namedIPaddr,namedIPerror skipwhite
  76. syn keyword    namedIntKeyword    contained unix nextgroup=namedString skipwhite
  77. syn keyword    namedIntKeyword    contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite
  78. syn keyword    namedIntKeyword    contained allow nextgroup=namedIntSection skipwhite
  79.  
  80. " --- options
  81. syn region    namedOptSection    contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError
  82.  
  83. syn keyword    namedOption    contained version directory
  84. \        nextgroup=namedString skipwhite
  85. syn keyword    namedOption    contained named-xfer dump-file pid-file
  86. \        nextgroup=namedString skipwhite
  87. syn keyword    namedOption    contained mem-statistics-file statistics-file
  88. \        nextgroup=namedString skipwhite
  89. syn keyword    namedOption    contained auth-nxdomain deallocate-on-exit
  90. \        nextgroup=namedBool,namedNotBool skipwhite
  91. syn keyword    namedOption    contained dialup fake-iquery fetch-glue
  92. \        nextgroup=namedBool,namedNotBool skipwhite
  93. syn keyword    namedOption    contained has-old-clients host-statistics
  94. \        nextgroup=namedBool,namedNotBool skipwhite
  95. syn keyword    namedOption    contained maintain-ixfr-base multiple-cnames
  96. \        nextgroup=namedBool,namedNotBool skipwhite
  97. syn keyword    namedOption    contained notify recursion rfc2308-type1
  98. \        nextgroup=namedBool,namedNotBool skipwhite
  99. syn keyword    namedOption    contained use-id-pool treat-cr-as-space
  100. \        nextgroup=namedBool,namedNotBool skipwhite
  101. syn keyword    namedOption    contained also-notify forwarders
  102. \        nextgroup=namedIntSection skipwhite
  103. syn keyword    namedOption    contained forward check-names
  104. syn keyword    namedOption    contained allow-query allow-transfer allow-recursion    nextgroup=namedAML skipwhite
  105. syn keyword    namedOption    contained blackhole listen-on
  106. \        nextgroup=namedIntSection skipwhite
  107. syn keyword    namedOption    contained lame-ttl max-transfer-time-in
  108. \        nextgroup=namedNumber,namedNotNumber skipwhite
  109. syn keyword    namedOption    contained max-ncache-ttl min-roots
  110. \        nextgroup=namedNumber,namedNotNumber skipwhite
  111. syn keyword    namedOption    contained serial-queries transfers-in
  112. \        nextgroup=namedNumber,namedNotNumber skipwhite
  113. syn keyword    namedOption    contained transfers-out transfers-per-ns
  114. syn keyword    namedOption    contained transfer-format
  115. syn keyword    namedOption    contained transfer-source
  116. \        nextgroup=namedIPaddr,namedIPerror skipwhite
  117. syn keyword    namedOption    contained max-ixfr-log-size
  118. \        nextgroup=namedNumber,namedNotNumber skipwhite
  119. syn keyword    namedOption    contained coresize datasize files stacksize
  120. syn keyword    namedOption    contained cleaning-interval interface-interval statistics-interval heartbeat-interval
  121. \        nextgroup=namedNumber,namedNotNumber skipwhite
  122. syn keyword    namedOption    contained topology sortlist rrset-order
  123. \        nextgroup=namedIntSection skipwhite
  124.  
  125. syn match    namedOption    contained /\<query-source\s\+.*;/he=s+12 contains=namedQSKeywords
  126. syn keyword    namedQSKeywords    contained address port
  127. syn match    namedCNOption    contained /\<check-names\s\+.*;/he=s+11 contains=namedCNKeywords
  128. syn keyword    namedCNKeywords    contained fail warn ignore master slave response
  129.  
  130. " --- logging facilities
  131. syn region    namedLogSection    contained start=+{+ end=+};+ contains=namedLogOption
  132. syn keyword    namedLogOption    contained channel nextgroup=namedIntIdent skipwhite
  133. syn keyword    namedLogOption    contained category nextgroup=namedIntIdent skipwhite
  134. syn keyword    namedIntKeyword    contained syslog null versions size severity
  135. syn keyword    namedIntKeyword    contained file nextgroup=namedString skipwhite
  136. syn keyword    namedIntKeyword    contained print-category print-severity print-time nextgroup=namedBool,namedNotBool skipwhite
  137.  
  138. " --- zone section
  139. syn region    namedZoneString    contained oneline start=+"+ end=+"+ skipwhite
  140. \        contains=namedDomain,namedIllegalDom
  141. \        nextgroup=namedZoneClass,namedZoneSection
  142. syn keyword    namedZoneClass    contained in hs hesiod chaos
  143. \        IN HS HESIOD CHAOS
  144. \        nextgroup=namedZoneSection skipwhite
  145.  
  146. syn region    namedZoneSection    contained start=+{+ end=+};+ contains=namedZoneOpt,namedCNOption,namedComment,namedMasters,namedParenError
  147. syn keyword    namedZoneOpt    contained file ixfr-base
  148. \        nextgroup=namedString skipwhite
  149. syn keyword    namedZoneOpt    contained notify dialup
  150. \        nextgroup=namedBool,namedNotBool skipwhite
  151. syn keyword    namedZoneOpt    contained pubkey forward
  152. syn keyword    namedZoneOpt    contained max-transfer-time-in
  153. \        nextgroup=namedNumber,namedNotNumber skipwhite
  154. syn keyword    namedZoneOpt    contained type nextgroup=namedZoneType skipwhite
  155. syn keyword    namedZoneType    contained master slave stub forward hint
  156.  
  157. syn keyword    namedZoneOpt    contained masters forwarders
  158. \        nextgroup=namedIPlist skipwhite
  159. syn region    namedIPlist    contained start=+{+ end=+};+ contains=namedIPaddr,namedIPerror,namedParenError,namedComment
  160. syn match    namedZoneOpt    contained "\<allow-\(update\|query\|transfer\)"
  161. \        nextgroup=namedAML skipwhite
  162.  
  163. " --- boolean parameter
  164. syn match    namedNotBool    contained "[^     ;]\+"
  165. syn keyword    namedBool    contained yes no true false 1 0
  166.  
  167. " --- number parameter
  168. syn match    namedNotNumber    contained "[^     0-9;]\+"
  169. syn match    namedNumber    contained "\d\+"
  170.  
  171. " --- address match list
  172. syn region    namedAML    contained start=+{+ end=+};+ contains=namedParenError,namedComment
  173.  
  174. " --- IPs & Domains
  175. syn match    namedIPaddr    contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{3};/he=e-1
  176. syn match    namedDomain    contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/ nextgroup=namedSpareDot
  177. syn match    namedDomain    contained /"\."/ms=s+1,me=e-1
  178. syn match    namedSpareDot    contained /\./
  179.  
  180. " --- syntax errors
  181. syn match    namedIllegalDom    contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1
  182. syn match    namedIPerror    contained /\<\S*[^0-9.[:space:];]\S*/
  183. syn match    namedEParenError    contained +{+
  184. syn match    namedParenError    +}\([^;]\|$\)+
  185.  
  186. " Define the default highlighting.
  187. " For version 5.7 and earlier: only when not done already
  188. " For version 5.8 and later: only when an item doesn't have highlighting yet
  189. if version >= 508 || !exists("did_named_syn_inits")
  190.   if version < 508
  191.     let did_named_syn_inits = 1
  192.     command -nargs=+ HiLink hi link <args>
  193.   else
  194.     command -nargs=+ HiLink hi def link <args>
  195.   endif
  196.  
  197.   HiLink namedComment    Comment
  198.   HiLink namedInclude    Include
  199.   HiLink namedKeyword    Keyword
  200.   HiLink namedIntKeyword    Keyword
  201.   HiLink namedIdentifier    Identifier
  202.   HiLink namedIntIdent    Identifier
  203.  
  204.   HiLink namedString    String
  205.   HiLink namedBool    Type
  206.   HiLink namedNotBool    Error
  207.   HiLink namedNumber    Number
  208.   HiLink namedNotNumber    Error
  209.  
  210.   HiLink namedOption    namedKeyword
  211.   HiLink namedLogOption    namedKeyword
  212.   HiLink namedCNOption    namedKeyword
  213.   HiLink namedQSKeywords    Type
  214.   HiLink namedCNKeywords    Type
  215.   HiLink namedLogCategory    Type
  216.   HiLink namedDomain    Identifier
  217.   HiLink namedZoneOpt    namedKeyword
  218.   HiLink namedZoneType    Type
  219.   HiLink namedParenError    Error
  220.   HiLink namedEParenError    Error
  221.   HiLink namedIllegalDom    Error
  222.   HiLink namedIPerror    Error
  223.   HiLink namedSpareDot    Error
  224.   HiLink namedError    Error
  225.  
  226.   delcommand HiLink
  227. endif
  228.  
  229. let &cpo = s:save_cpo
  230. unlet s:save_cpo
  231.  
  232. let b:current_syntax = "named"
  233.  
  234. " vim: ts=17
  235.